<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur est autorisé
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 3 || $GLOBALS['USER']['admin'])){
   
      if (isset($_POST['envoi'])) {
      
	   // on déclare toutes les variables qui seront envoyées via _GET
         $nom = "";
         $nom2 = "";
         $type = "";
         $numcor = "";
         $adresse = "";
         $adresse2 = "";
         $codepostal = "";
         $ville = "";
         $pays = "";
         $email = "";
         $phone = "";
         $fax = "";
         $fac = "";
         $web = "";
         $lastC = "";
         $comm = "";
         $fili = "";
         $lali = "";
         $delim = "&delim=".$_POST['delimiteur'];
         $verbose = ($_POST['showImport'] == "yes"?"&verbose=1":"");

      // on défini ou non la première et la dernière ligne à traiter
         if(isset($_POST['firstLine'])&&$_POST['firstLine']!=''){
            $fili= '&fili='.$_POST['firstLine'];
         }
         if(isset($_POST['lastLine'])&&$_POST['lastLine']!=''){
            $lali= '&lali='.$_POST['lastLine'];
         }
         
         $erreur = false;
         $statut = array();
         
      
		// GESTION DES ERREURS CONCERNANT LE FICHIER CSV
         switch($_FILES['fichier']['error']) {
         
            case 1:
            case 2:
               $statut[] = "le fichier chargé est trop gros.";
               $erreur = true;
               break;
            case 3:
               $statut[] = "L'envoi s'est interrompu avant la fin.";
               $erreur = true;
               break;
            case 4:
               $statut[] = "Le fichier n'existe pas.";
               $erreur = true;
               break;
            case 6:
               $statut[] = "L'administrateur n'a pas mis en place de dossier de destination.";
               $erreur = true;
               break;
            case 7:
               $statut[] = "l'écriture du fichier sur le serveur est impossible.";
               $erreur = true;
               break;
            case 8:
               $statut[] = "Impossible d'envoyer le fichier.";
               $erreur = true;
               break;
            default:

            //si pas d'erreur, on récupère le nom du fichier
               $tmp_name=$_FILES['fichier']['tmp_name'];
               $name=$_FILES['fichier']['name'];
               
			   // on en extrait son extension
               $fileExt = substr($name, strrpos($name, "."));
                
			   // on vérifie qu'il s'agit bien d'un fichier csv
               if ($fileExt == ".csv") {
                 
               // si oui on le déplace dans le dossier import/
               // et on traite les données du formulaire
                  if (move_uploaded_file($tmp_name,"import/".$name)) {
                     
                     $cpt = 1;
					   // traitement des données concernant les colonnes
                     while ($cpt < 15) {
                        if(isset($_POST['deroul'.$cpt])) {
                           switch($_POST['deroul'.$cpt]) {
                              case 'Nom':
                                 $nom = "&nom=".($cpt-1);
                                 break;
                              case 'Nom (suite)':
                                 $nom2 = "&nom2=".($cpt-1);
                                 break;
                              case 'Type':
                                 $type = '&type='.($cpt-1);
                                 break;
                              case 'Numcor':
                                 $numcor = '&numcor='.($cpt-1);
                                 break;
                              case 'Adresse':
                                 $adresse = '&adr='.($cpt-1);
                                 break;
                              case 'Adresse (suite)':
                                 $adresse2 = '&adr2='.($cpt-1);
                                 break;
                              case 'Code Postal':
                                 $codepostal = '&cpost='.($cpt-1);
                                 break;
                              case 'Ville':
                                 $ville = '&ville='.($cpt-1);
                                 break;
                              case 'Pays':
                                 $pays = '&pays='.($cpt-1);
                                 break;
                              case 'Email':
                                 $email = '&email='.($cpt-1);
                                 break;
                              case 'Téléphone':
                                 $phone = '&phone='.($cpt-1);
                                 break;
                              case 'Fax':
                                 $fax = '&fax='.($cpt-1);
                                 break;
                              case 'Site Internet':
                                 $web = '&web='.($cpt-1);
                                 break;
                              case 'Date dernier contact':
                                 $lastC = '&lastC='.($cpt-1);
                                 break;
                              case 'Commentaire':
                                 $comm = '&comm='.($cpt-1);
                                 break;
                           }
                        }
                        $cpt++;
                     }
                     if ($adresse2 != "" && $adresse == "") {
                        $statut[] = "Faudrait peut-être pas prendre les gens pour des billes non plus, hein.";
                        $erreur = true;
                     } else {
                        $statut[] = "Le fichier a été envoyé avec succès.";
                     }
                  }else {
                  
                     $statut[] = "Impossible d'envoyer le fichier.";
                     $erreur = true;
                     
                  }
                  
               } else {
                  
                  $statut[] = "Le fichier proposé n'est pas de type csv.";
                  $erreur = true;
                  
               }                      
            
         }
         // s'il y a erreur dans le traitement, on redirige vers le formulaire
         // sinon on envoi toute les données par GET
         if ($erreur) {
            afficherStatut($statut, 3);
            redirection("requetes/import_structures",2);
         } else {
            afficherStatut($statut, 1);
            redirection("requetes/import_structures_resultat&f=$name$fili$lali$delim$nom$nom2$type$numcor$adresse$adresse2$codepostal$ville$pays$email$phone$fax$web$lastC$comm$verbose",2);
         }
         
            
      } else {
   

	// STRUCTURE HTML DU FORMULAIRE
?>   
   <h2>Importer des Structures</h2>
   <div class="chargeFichier">
      
      <form enctype="multipart/form-data" action="" method="post"> 
      
         <input type="hidden" name="max_file_size" value="2000000">
         
         <div class="subtitle23"> Champs </div>
         
         <div class="lisTitle">        
            <span class="label1">
               Nombre de champs
            </span>
            <span class="input1"> 
               <input type="text" id="nbrChamps" name="nbrChamps" onKeyUp="ajouterChamp('structure')">
            </span>
         </div>
         
         <div id="lesListes" class="lesListes">
            
            
              
         </div>
         
         <div class="lisTitle">        
            <span class="label3">
               Délimiteur de champs
            </span>
            <span class="input3"> 
               <input type="radio" name="delimiteur" value="," checked="checked" onChange="disenableInput('autreDelim',0);"> Virgule <input type="radio" name="delimiteur" value="\t" onChange="disenableInput('autreDelim',0);"> Tabulation <input type="radio" name="delimiteur" value="autre" onChange="disenableInput('autreDelim',1);"> autres : <input type="text" id="autreDelim" name="autreDelim" disabled="disabled">
            </span>
         </div>
         
         <div class="subtitle23"> Traitement </div>
         
         <div class="lisTitle">        
            <span class="label1">
               De la ligne <input type="text" id="firstLine" name="firstLine"> à la ligne <input type="text" id="lastLine" name="lastLine">
            </span>
         </div>
         
         <div class="lisTitle">        
            <span class="label1">
               Afficher le traitement 
            </span>
            <span class="input1">
               oui <input type="radio" name="showImport" value="yes" checked="checked"> non <input type="radio" name="showImport" value="non">
            </span>
         </div>
         
         <div class="subtitle23"> Choix du fichier </div>
         
         <div class="lisTitle">
            <span class="file1">
               <input name="fichier" type="file">
            </span>
            <span class="submit1">
               <input type="submit" name="envoi" value="Envoyer le fichier">
            </span>
         </div>
      </form>

   </div>
   
   <div class="information">
      <div class="titre">Informations</div>
      <p>Veuillez renseigner le nombre de colonnes que contient votre fichier, 
      pour chacune d'elles donnez si possible le type de données qu'elles contiennent (suivant la liste proposée), 
      et si oui précisez s'il faut insérer ces données dans la base.<br /><br />
      Si vous souhaitez ajouter des taxons, veillez à bien renseigner les colonnes contenant les données de type famille,genre et espèce
      autrement le taxon formé ne sera pas retenu.</p>
   </div>

 

<?php

      }
      
   } else {
         
      if(isset($_SESSION)){
         include("pages/401.htm");
   	}
         
   }
   
?>